package com.tjetc.reflect;


// 演示获取类对象的方式
public class _5GetClass {
    public static void main(String[] args) throws ClassNotFoundException {
        // 第1种方式
        // 前提：必须要直到类的全路径名称
        // 应用场景：多用于配置文件的方式获取类路径并加载
//        Class cls = Class.forName("com.tjetc.reflect._1Cat");

        // 第2种方式
        // 前提：直到具体的类名称,这种方式最简单，安全可靠。
        // 应用场景：多用于参数传递
//        Class catClass = _1Cat.class;


        // 第3种方式
        // 前提：需要直到某个类的实例对象
//        Object cat = new _1Cat();
//        Class cls1 = cat.getClass();
//        System.out.println(cls1);

        // 第4种方式
//        Class aClass = cat.getClass().getClassLoader().loadClass("com.tjetc.reflect._1Cat");

        // 基本类型获取方式
        Class intType = int.class;

        // 包装类获取方式
        Class intType1 = Integer.TYPE;
        Class intType2 = Integer.class;

        // Integer.TYPE 和 int.class 使用一个类对象
        System.out.println(intType.hashCode());
        System.out.println(intType1.hashCode());
        System.out.println(intType2.hashCode());
    }
}
